package models.order;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

import play.db.jpa.Model;

/**
 * 订单报关信息
 * 
 * 报关信息通常是和SKU绑定的 为了客户能够自定义每一个订单的报关信息 和 处理无SKU的订单而建此表
 * 
 * 如果此表没有订单报关记录, 而订单有SKU,且SKU有报关信息,应当是 把SKU的报关信息导入此表,生成对应订单的报关信息
 * 
 * 为了防止客户修改SKU报关信息,导致订单的报关信息无从跟踪而发生纠纷
 * 
 * @author yechao
 * @date 2013年11月3日
 */
@Entity
@Table(name = "order_customs")
public class OrderCustoms extends Model {
	/**
	 * 订单ID, 订单表的ID
	 */
	@Column(name = "order_id")
	public Long orderId;
	/**
	 * 报关信息类型 文件;礼物;包裹;其他
	 */
	@Column(name = "customs_type", length = 50)
	public String customsType;

	/**
	 * 报关描述,极多数情况是不允许输入中文报关信息的
	 */
	@Column(name = "description", length = 255)
	public String description;

	/**
	 * SKU名称,可空,供客户打印标签时使用
	 */
	@Column(name = "sku")
	public String sku;

	/**
	 * 配货名称 ,供客户打印标签时使用
	 */
	@Column(name = "product_name", length = 255)
	public String productName;

	/**
	 * 报关数量
	 */
	@Column(name = "quantity")
	public int quantity;

	/**
	 * 数量单位
	 */
	@Column(name = "unit")
	public String unit;

	/**
	 * 报关重量
	 */
	@Column(name = "weight")
	public Float weight;

	/**
	 * 币种 通常USD
	 */
	@Column(name = "currency", length = 3)
	public String currency;

	/**
	 * 报关价值
	 */
	@Column(name = "value")
	public Float value;

	/**
	 * 海关编号
	 */
	@Column(name = "hs_code", length = 100)
	public String hsCode;

}
